#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1005,MAXN=1e13;
int n,cnt,rt;
map<int,int> mp;
int ls[N*50],rs[N*50],siz[N*50],sum[N*50],tot;
void upd(int &p,int l,int r,int L,int v)
{
	if(!p) p=++tot;
//	cerr<<p<<' '<<l<<' '<<r<<'\n';
	sum[p]+=v*L; siz[p]+=v;
	if(l==r) return ;
	int mid=(l+r)>>1;
	if(L<=mid) upd(ls[p],l,mid,L,v);
	else upd(rs[p],mid+1,r,L,v);
}
int askmin(int p,int l,int r,int k)
{
	if(l==r) return sum[p];
	int mid=(l+r)>>1;
	if(k<=siz[ls[p]]) return askmin(ls[p],l,mid,k);
	else return sum[ls[p]]+askmin(rs[p],mid+1,r,k-siz[ls[p]]);
}
int askmax(int p,int l,int r,int k)
{
	if(l==r) return sum[p];
	int mid=(l+r)>>1;
	if(k<=siz[rs[p]]) return askmax(rs[p],mid+1,r,k);
	else return sum[rs[p]]+askmax(ls[p],l,mid,k-siz[rs[p]]);
}
signed main()
{
	freopen("kte.in","r",stdin);
	freopen("kte.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int x;  cin>>x;
//		cerr<<"upded\n";
		if(mp[x]) mp[x]=0,upd(rt,1,MAXN,x,-1);
		else mp[x]=1,upd(rt,1,MAXN,x,1);
		int lastl=0,lastr=0,ans=0;
		for(int i=1;i<=siz[rt];i++)
		{
			int nl=askmin(rt,1,MAXN,i);
			int nr=askmax(rt,1,MAXN,i);
			nl=max(nl,lastr);
			ans+=nr-nl;
			lastl=nl; lastr=nr;
		}
		cout<<ans<<'\n';
	}
}
